Don’t Look UB: Exposing Sanitizer-Eliding Compiler Optimizations
نویسندگان
چکیده
Sanitizers are widely used compiler features that detect undefined behavior and resulting vulnerabilities by injecting runtime checks into programs. For better performance, sanitizers often in conjunction with optimization passes. But doing so combines two conflicting objectives. While want to expose behavior, optimizers exploit these same properties for performance. In this paper, we show clash can have serious consequences: optimizations remove sanitizer failures, thereby hiding the presence of bugs or even introducing new ones. We present LookUB, a differential-testing based framework finding optimizer transformations elide failures. our method find 17 such sanitizer-eliding Clang. Next, static analysis fuzzing search open-source projects were previously hidden due optimizations. This led us discover 20 Linux Containers, libmpeg2, NTFS-3G, WINE. Finally, an effective mitigation strategy on customization Clang overhead increase 4%.
منابع مشابه
Compiler Optimizations for Media Processors
In the design of embedded systems, programmable processors gain more and more importance due to their high flexibility and potential for reuse. As a consequence, compilers for embedded processors are required, capable of generating very fast and dense code. In particular, this concerns the area of computation-intensive multimedia applications. While domain-specific digital signal processors may...
متن کاملCompiler Optimizations using Symbolic Abstraction
With increasing program complexity, a vital requirement for compilers is to produce efficient code with as few instructions as possible. This requires program analyses that are expressive enough to prove relevant program properties, but still effectively computable. In the last decades, a large variety of such program analyses has been developed. The better availability of computational power t...
متن کاملLow Power/Energy Compiler Optimizations
Embedded processor and SoCs are used in many devices, ranging from pace makers, sensors, phones, and PDAs, to general-purpose handheld computers and laptops. Each of these devices has their own requirements for performance, power dissipation, and energy usage, and typically implements a particular tradeoff among these entities. Allowing components of these devices to be controlled by software h...
متن کاملInteractive Composition of Compiler Optimizations
Conventional compilers provide limited external control over the optimizations they automatically apply to attain high performance. Consequently, these optimizations have become increasingly ineffective due to the difficulty of understanding the higher-level semantics of the user applications. This paper presents a framework that provides interactive fine-grained control of compiler optimizatio...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
ژورنال
عنوان ژورنال: Proceedings of the ACM on programming languages
سال: 2023
ISSN: ['2475-1421']
DOI: https://doi.org/10.1145/3591257